gdkwindow: Apply layered areas to the shape for native windows
authorAlexander Larsson <alexl@redhat.com>
Wed, 27 Mar 2013 10:47:37 +0000 (11:47 +0100)
committerAlexander Larsson <alexl@redhat.com>
Wed, 27 Mar 2013 11:02:27 +0000 (12:02 +0100)
commit9cc64579c2196e6bd9c5c71cd63945b3d152fbab
treee6bee53e48b0d3c25f0d863ab9df2cf97a817221
parent6374873dcbb05a5149b5c56048e950cba331cf78
gdkwindow: Apply layered areas to the shape for native windows

If a window is overlapped by a layered (i.e. partially transparent)
window then that region will not disappear from the native window clip
region. This lets us handle compositing multiple layers of windows.

For native subwindows this doesn't really work. For them we apply the
clip region as a shape to the native window which lets us have client
side windows overlapping the native window. However, with the addition
of the layered stuff the "overlapped-by-alpha-csw" part got broken, as
this area is not removed from the clip region of the native window.

We fix this by also removing the layered area when applying the shape.
This means alpha and alpha backgrounds don't work over native windows,
but there is not much to do about that.

https://bugzilla.gnome.org/show_bug.cgi?id=696370
gdk/gdkwindow.c